#include <i386/stdlib.h>

#define MODULUS		2147483647L
#define FACTOR		16807L
#define DIVISOR		127773L
#define REMAINDER	2836L

static long int last_val;

long int rand(void) {
	long int last_div = last_val / DIVISOR;
	long int last_rem = last_val % DIVISOR;
	
	last_val = (FACTOR * last_rem) - (REMAINDER * last_div);
 	
 	if (last_val < 0) {
 		last_val += MODULUS;
 	}
	
	return last_val;
}

void srand(long int seed) {
	last_val = seed;
}

